### 4.2.7 温度湿度計 #### 4.2.7.1 概要 ![Img](./media/top1.png) このプロジェクトでは、Micro:bitボード、ゲームパッド、XHT11温湿度センサー、OLEDディスプレイを使用して温湿度監視システムを構築します。XHT11センサーは周囲の温度と湿度を測定し、OLEDディスプレイはリアルタイムで測定値を更新します。ゲームパッドのコントローラーボードは回路拡張と安定した接続を容易にし、システムがシンプルな温度計として機能することを可能にします。 ![Img](./media/bottom1.png) #### 4.2.7.2 コンポーネント知識 ![Img](./media/2top.png) **XHT11 温湿度センサー** ![Img](./media/XHT11.png) XHT11温湿度センサーはデジタル信号を出力し、特殊なアナログ信号取得と変換、高度な温湿度センシング技術を採用して、優れた長期安定性と高い信頼性を保証します。 高精度抵抗式湿度センサーとサーミスタ温度センサーを内蔵し、8ビット高性能マイクロコントローラーと統合されています。 **XHT11 通信モード:** 簡素化されたシングルバス通信を採用しています。シングルバスは単一のデータラインで構成され、システム内のすべてのデータ交換と制御操作がこれを通じて実行されます。 - シングルバス伝送データビット: - シングルバスデータ形式: 40ビットのデータを一度に送信し、上位ビットが最初です。 - 8ビット整数湿度データ + 8ビット小数湿度データ + 8ビット整数温度データ + 8ビット小数温度データ + 8ビットパリティビット。 **注: 湿度の小数部分は0です。** - パリティビット: - 8ビット整数湿度データ + 8ビット小数湿度データ + 8ビット整数温度データ + 8ビット小数温度データ 8ビットパリティビットは結果の最後の8ビットです。 ![Img](./media/7001.png) XHT11温湿度センサーのデータシーケンス図: ユーザーホスト(MCU)がスタート信号を送信した後、XHT11は低電力モードから高速モードに切り替わり、この信号が終了した後、XHT11は応答信号と40ビットのデータを送信し、信号取得をトリガーします。 信号は図のように送信されます: ![Img](./media/7002.png) ⚠️ **ヒント:** ホストがXHT11センサーから読み取る温湿度データは、常に前回の測定値です。2回の測定間隔が長い場合は、2回連続して読み取ってください。2回目の値が実際の値になります。 **回路図:** ![Img](./media/cou73-2.png) **パラメータ:** - 動作電圧: DC 3V~5V - 動作電流: (最大)2.5mA - 最大電力: 0.0125W - 温度範囲: -25 ~ +60°C (±2℃) - 湿度範囲: 5 ~ 95%RH(25C°付近での精度は±5%RH) - 出力信号: デジタル双方向シングルバス **OLED ディスプレイ** ![Img](./media/A636.png) OLEDは、豊かな色彩再現、高いコントラスト、広い視野角といった優れた利点を提供します。画像は鮮明で鮮やかで、特に黒が際立っています。各ピクセルはバックライトを必要とせず自己発光するため、消費電力は比較的低いです。0.9インチのOLEDスクリーンは、コンパクトなサイズ、高解像度(128×64ピクセル)、低消費電力という特徴を持ち、組み込みシステムやウェアラブルデバイスでのアプリケーションに最適です。 ⚠️ **注**: このOLEDディスプレイの場合、SDAインターフェースはMicro:bitボードのP20ピンに接続され、SCLはP19ピンに接続されます。 **パラメータ:** - 動作電圧: DC 3V - 5V - 動作電流: 30mA - インターフェース: 2.54mmピッチのピン - 通信モード: I2C通信 - 内部駆動チップ: SSD1306 - 解像度: 128×64 - 視野角: 150°以上 #### 4.2.7.3 必要な部品 | ![Img](./media/microbitV2.png)| ![Img](./media/shoubin.png) |![Img](./media/dianchi.png) | | :--: | :--: | :--: | | **micro:bit V2 ボード** (自己調達) ×1 | **micro:bit スマートゲームパッド** (組み立て済み) ×1 |**単4電池** (自己調達) ×4 | |![Img](./media/XHT11.png)|![Img](./media/OLED.png)|![Img](./media/7008.png)| |**XHT11 温湿度センサー** (自己調達)×1|**OLED ディスプレイ** (自己調達)×1 |**F-F デュポンワイヤー**(自己調達) x7| #### 4.2.7.4 配線図 ![Img](./media/jiexian.png) **上記のように配線した後、micro:bitをゲームパッドコントロールボードのスロットに挿入します。** | OLED ディスプレイ | micro:bit ゲームパッドコントロールボード |micro:bit ボードピン | | :--: | :--: | :--: | | GND | GND | GND | | VCC | 3V | 3V | | SDA | SDA | P20 | | SCL | SCL | P19 | | XHT11 温湿度センサー | micro:bit ゲームパッドコントロールボード | micro:bit ボードピン | | :--: | :--: | :--: | | G | GND | GND | | V | 3V | 3V | | S | 12 | P12 | #### 4.2.7.5 コードフロー ![Img](./media/7003.png) #### 4.2.7.6 テストコード ⚠️ **ここではOLEDとDHT11ライブラリが含まれているため、`https://github.com/keyestudio/pxt-environment-kit-master`をインポートする必要があります。** **完全なコード:** ![Img](./media/7004.png) ![Img](./media/line1.png) **簡単な説明:** ① OLEDのピクセルを初期化してクリアし、5×5LEDマトリックスに ![Img](./media/1006.png) を表示させ、温度と湿度の値を0に定義します。 ![Img](./media/7005.png) ② XHT11センサーの対応する測定値を変数temperatureとhumidityに割り当てます。 ![Img](./media/7006.png) ③ OLEDにXHT11センサーの測定値を表示します。 ![Img](./media/7007.png) ④ 500ms(0.5秒)遅延させます。 ![Img](./media/cou28.png) #### 4.2.7.7 テスト結果 ![Img](./media/4top.png) コードを書き込んだ後、micro:bitボードをゲームパッドのスロットに挿入し(**電池が取り付けられていることを確認**)、「ON」に切り替えます。 micro:bitボードにコードをアップロードすると、OLEDにXHT11センサーが読み取った温度と湿度がリアルタイムで表示されます。 ![Img](./media/7000.gif) **ヒント:** ボードが応答しない場合は、micro:bitボードの背面にあるリセットボタンを押してください。 ![Img](./media/4bottom.png)